Automatic generation of device and user profiles

ABSTRACT

A host server downloads a diagnostic program which is then used to interrogate a client device from time to time for its capabilities to generate a profile, which is used to generate a device entry in a database and to provide a reference address which is transmitted back to the client terminal. When the user wishes to access data from a website, he uses his terminal to transmit a data request, which includes a header carrying the address of the device profile on the database associated with the host. The target server (website), on receiving the data request, uses the address to interrogate the data base to retrieve the profile to be sent back to the website, which can then use the retrieved client device profile to select the content and form of the data to be sent to the user terminal.

This invention relates to the process of tailoring content andpresentation of data access systems such as “Internet” websites to theneeds of individual particular users and access devices (“browsers”), aprocess which will be referred to herein as “personalisation”. Thisallows web-site content to be personalised to suit the browsercharacteristics.

There are two ways of personalising a web-site. The first way is tocreate different versions of the same content, store the differentversions on the website and use the personalisation characteristics todecide which version of the content to send to the client, as describedby Benkiran, A. and Ajhoun, R. “Towards An Adaptative And CooperativeTele-Learning” Proceedings of the International Conference onEngineering Education, Session 7B1, pp 22-27, 2001. The second way is todynamically alter the content retrieved by the web-server before it isdisplayed, as described by Lakshmi Viiappu, Ah-Hwee Tan, and Chew-LimTan. “Web Structure Analysis for Information Mining” Proceedings of theICDAR'01 Workshop on Web Document Analysis, Seattle, 2001. In both casesthe transformation is usually achieved using the extensible mark uplanguage (XML) and the associated Stylesheet language (XSL).

There is an extension of WAP (Wireless Application Protocol) 1.1 thatenables a User Agent Profile (UAProf), also referred to as Capabilityand Preference Information (CPI), to be transferred from a WAP client toa server, as reported in Wireless Application Protocol Forum, Ltd. “WAGUAProf”, Version 20-October-2001. This extension seeks to interoperateseamlessly with the emerging standards for CC/PP distribution over theInternet. The specification defines a set of components and attributesthat WAP-enabled devices may convey within the CPI. This CPI mayinclude, but is not limited to, hardware characteristics (screen size,color capabilities, image capabilities, manufacturer), softwarecharacteristics (operating system vendor and version, support for MExE,list of audio and video encoders), application/user preferences (browsermanufacturer and version, markup languages and versions supported,scripting languages supported), WAP characteristics (WML scriptlibraries, WAP version, WML deck size), and network characteristics suchas, latency and reliability.

The literature mainly details static device profiles forpersonalisation. In one proposal, reported by Korolev, V. and Joshi, A.“An End-End Approach to Wireless Web Access” In Proceedings of the21^(st) IEEE International Conference, Distributed Computing SystemsWorkshops, pp 473-478, IEEE Computer Society, April, 2001, the clientpasses its characteristics to the server via a single static URI(Uniform Resource Identifiers) relating to the generalised type device,such as ‘PDA’, ‘Laptop’, ‘Desktop PC’ and ‘WAP Phone’. Another system,discussed by Seshan, S., Stemm, M. and Katz, R. H. “SPAND: SharedPassive Network Performance Discovery” In Proc 1st Usenix Symposium onInternet Technologies and Systems (USITS '97) Monterey, Calif.,December, 1997, considers the device's network performance inpersonalising content.

Devices like the mobile phone have their governing specification(UAPROF) developed by the WAP Forum which requires the mobile maker toprovide this profile for every model on the internet. Thus when a WAP(Wireless Application Protocol) mobile device accesses the internet, thecapabilities of the device can be accessed. However, these are fixedprofiles, as only one profile is stored for all devices of the samemodel. Customisable devices are being developed in which thecapabilities can be altered to suit different consumer needs. Othercomputers such as PCs and portable computers (laptops) communicate withthe internet through modems and do not have any dynamic method toprovide information to other devices, with which they may require tocommunicate, of what their capabilities are. A process of tailoring theprofile more closely to the requirements of the user, as well as thecharacteristics of the device being used, is required.

It is known, for example from International Patent SpecificationWO99/57657 (Lextrori) for pre-stored user information relating todifferent types of user terminal to be used to configure the host/clientinterface. However, this system only allows terminal-specificinformation to be used. Details of any special configuration of thedevice applied by the user, or of his personal preferences, or thecontext in which it is currently working, are not catered for by thissystem.

According to the invention there is provided hosting apparatus forgenerating and storing profile information relating to client devices,comprising means for interrogating a client device, means for generatinga client device profile based on the results of said interrogation,storage means for storing client device profiles so generated, means forgenerating reference codes identifying the stored client device profilesand transmitting said reference codes to the respective client devices,the storage means being arranged to retrieve the profile of a clientdevice on receipt, from a data accession device, of a data requestincluding the reference code relating to that client device, wherein theinterrogation means comprises means for transmitting a diagnosticprogram to the client device, and means for activating the diagnosticprogram and analysing inputs received from the client device to generatethe client device profile.

The apparatus also preferably comprises means for causing a clientdevice to transmit the said reference code as part of data requests madeto data accession devices.

The invention also extends to a data access terminal having means forgenerating a client device profile, comprising diagnosis means fordetermining properties of the terminal and/or of its user, means forgenerating a client device profile derived from the said properties,means for transmitting the client device profile to a store associatedwith a host server, means for receiving from the host server an addressfrom which the client device profile can be retrieved, and means formaking a data request to a database in which the said address istransmitted with the data request to allow the database to retrieve theclient device profile from the store, the diagnosis means comprising adiagnostic program loaded onto the terminal, and means for activatingthe diagnostic program to generate a client device profile and means fortransmitting the client device profile to a host server.

According to another aspect, the invention provides a method ofgenerating profile information relating to client devices, comprisingthe steps of interrogating the client for its capabilities, generating aprofile, storing the profile in a database, and generating a referencecode for transmission to the client to allow retrieval of the relevantprofile, comprising the step of transmitting a diagnostic program to theclient device, activating the diagnostic program at predetermined times,and generating the client device profile from the results of saiddiagnosis.

The interrogation and subsequent steps can be repeated from time to timeto allow for changes in context. Preferably the method comprises thestep of retrieving the profile information from the database in responseto a data request incorporating the reference code. The method may alsocomprise a step of causing a client device to transmit the saidreference code as part of data requests made to data accession devices.

The invention also extends to a process for generating a client deviceprofile for a data access terminal, wherein a diagnostic program isloaded onto the terminal and activated so as to perform a diagnosisprocess to determine properties of itself and/or of its user, generatesa client device profile derived from the said properties, the terminaltransmits the client device profile to a store associated with a hostserver, and receives from the host server an address from which theclient device profile can be retrieved, and when the data accessterminal makes a data request to a database, the said address istransmitted with the data request to allow the database to retrieve theclient device profile from the store, wherein the terminal performs aself-diagnosis process to determine properties of itself and/or of itsuser, and generates a client device profile derived from the saidproperties,

The diagnosis process may be performed autonomously, or under thecontrol of the host device.

The invention extends to a computer program product or suite of computerprogram products for use with one or more computers to carry out themethod of the invention or to provide any of the apparatus according tothe invention.

The computer program product may be embodied on any suitable carrierreadable by a suitable computer input device, such as CD-ROM, opticallyreadable marks, magnetic media, punched card or tape, or on anelectromagnetic or optical signal.

This invention provides a method for dynamically hosting and servingdevice profiles to web-server to enable the personalisation of theweb-content to the current context in which the device finds itself. Thedata stored may relate to the nature of the device and the currentcontext in which the device finds itself, and may also relate touser-preferences for further content personalisation.

User profiles relating to individual client devices can therefore behosted publicly, in essence providing a persistent resource on theinternet for any server to access as required.

An embodiment of the invention will now be described, by way of example,with reference to the drawings in which

FIG. 1 illustrates a hosting device according to the invention, and thevarious devices which co-operate with it in performance of the method ofgenerating a client device profile;

FIG. 2 illustrates the process of retrieving the client device profile.

FIG. 1 shows a host server 1 according to the invention, serving a largenumber of client user terminals, one of which is shown at 2. Associatedwith the host terminal 2 is a terminal profile store 3. Also shown is awebsite 4. The website 4 is one of many accessible by the user terminalover the interriet, by using an access request 20 addressed to theuniversal resource locator (“url”) appropriate to that website.

When a user 1 requests data from the website 4, the website 4 isarranged to return data according to a specified client device profile.In prior art arrangements this can be achieved by the user transmittingthose details with the request. Such arrangements are, for instance usedin the WAP standard, in which the make and model of device making therequest is identified. Some individual websites generate “cookies” whichstore user data at the user terminal. When subsequent access requestsare made to the same website the data can be retrieved so that thewebsite can recognise the user. However, cookies are specific to thewebsite that generated them.

The Composite Capability/Preferences Profile (CC/PP) standard describesa method for using the Resource Description Format (RDF) of the W3C, tocreate a general, yet extensible framework for describing userpreferences and device capabilities: see Klyne, G., Reynolds, F.,Woodrow, C. and Ohto, H. “Composite Capability/Preference Profiles(CC/PP): Structure and Vocabularies”, World Wide Web Consortium (W3C)Working Draft 15 Mar. 2001. This information can be provided by the userto individual servers and content providers. The servers can use thisinformation describing the user's preferences to customise the serviceor content provided.

For device personalisation to occur the characteristics of the deviceand browser need to be gathered and then transferred across the networkto the server. In the present embodiment, the host server 1 downloads adiagnostic program 90 which is then used to interrogate the client 2from time to time for its capabilities (step 11). The diagnostic program90 may be stored on the terminal 2, or downloaded each time as shown(step 10). The hosting server 1 corresponds with the user terminal 2using the diagnostic program to generate a profile 92, which in thisembodiment uses the Resource Description Format (RDF) already discussed.This profile 92 is used to generate a device entry in a database 3 (step12) and to provide a reference address in the form of a Uniform ResourceIdentifier (URI) 93 which is transmitted back to the client terminal 2(step 13). This reference URI will be used in the header information ofthe client request 20 to point to its device profile 92 in the store 3.

Referring now to FIG. 2, when a user wishes to access data from awebsite 4, he uses his terminal 2 to transmit a data request 20. Thisdata request 20 includes the standard Uniform Resource Location (url)which identifies the target website 4, and a header indicating theaddress of the terminal 2 to which the data requested is to be returned.In this embodiment the data request 20 also includes a header carryingthe address (URI) 93 indicating the location of the device profile 92 tobe the database 3 associated with the host 1. The target server(website) 4, on receiving the data request 20, uses the address 93 tointerrogate the data base 3 (step 21). The address (URI) 93 identifiesthe exact profile (RDF) 92 to be sent back to the requester 4 (step 22).The requesting server 4 can then use the retrieved client device profile92 to select the content and form of the data 94 to be sent to the userterminal 2 (step 24).

The ability to reference profile information (RDFs) via Uniform ResourceIdentifiers (URIs) assists in minimising the number of networktransactions required to adapt content to a device as well as reducingthe header length. Further, the CC/PP framework fits well into thecurrent and future protocols being developed at the W3C and the WAPForum. The periodic interrogation of the user terminal 2 by the host 1allows changes in user preferences or equipment to be accommodatedwithout any pro-active action by any server 4, other than the hostserver 1. Thus a user will always find that any website 4 that he wishesto access will pwersonalise the data according to his currentpreferences, as recorded on his terminal, and according to thecapabilities of his current user terminal.

As will be understood by those skilled in the art, any or all of thesoftware used to implement the invention can be contained on varioustransmission and/or storage mediums such as a floppy disc, CD-ROM, ormagnetic tape so that the program can be loaded onto one or more generalpurpose computers or could be downloaded over a computer network using asuitable transmission medium.

Unless the context clearly requires otherwise, throughout thedescription and the claims, the words “comprise”, “comprising” and thelike are to be construed in an inclusive as opposed to an exclusive orexhaustive sense; that is to say, in the sense of “including, but notlimited to”.

1. Hosting apparatus for generating and storing profile informationrelating to client devices, comprising means for interrogating a clientdevice, means for generating a client device profile based on theresults of said interrogation, storage means for storing client deviceprofiles so generated, means for generating reference codes identifyingthe stored client device profiles and transmitting said reference codesto the respective client devices, the storage means being arranged toretrieve the profile of a client device on receipt, from a dataaccession device, of a data request including the reference coderelating to that client device, wherein the interrogation meanscomprises means for transmitting a diagnostic program to the clientdevice, and means for activating the diagnostic program and analysinginputs received from the client device to generate the client deviceprofile.
 2. Apparatus according to claim 1, comprising means for causinga client device to transmit the said reference code as part of datarequests made to data accession devices.
 3. A data access terminalhaving means for generating a client device profile, comprisingdiagnosis means for determining properties of the terminal and/or of itsuser, means for generating a client device profile derived from the saidproperties, means for transmitting the client device profile to a storeassociated with a host server, means for receiving from the host serveran address from which the client device profile can be retrieved, andmeans for making a data request to a database in which the said addressis transmitted with the data request to allow the database to retrievethe client device profile from the store, the diagnosis means comprisinga diagnostic program loaded onto the terminal, and means for activatingthe diagnostic program to generate a client device profile and means fortransmitting the client device profile to a host server.
 4. A method ofgenerating profile information relating to client devices, comprisingthe steps of interrogating the client for its capabilities, generating aprofile, storing the profile in a database, and generating a referencecode for transmission to the client to allow retrieval of the relevantprofile, comprising the step of transmitting a diagnostic program to theclient device, activating the diagnostic program at predetermined times,and generating the client device profile from the results of saiddiagnosis.
 5. A method according to claim 6, comprising the step ofretrieving the profile information from the database in response to adata request incorporating the reference code.
 6. A method according toclaim 4, comprising the step of causing a client device to transmit thesaid reference code as part of data requests made to data accessiondevices.
 7. A process for generating a client device profile for a dataaccess terminal, wherein a diagnostic program is loaded onto theterminal and activated so as to perform a diagnosis process to determineproperties of itself and/or of its user, generates a client deviceprofile derived from the said properties, the terminal transmits theclient device profile to a store associated with a host server, andreceives from the host server an address from which the client deviceprofile can be retrieved, and when the data access terminal makes a datarequest to a database, the said address is transmitted with the datarequest to allow the database to retrieve the client device profile fromthe store,
 8. A computer program product or suite of computer programproducts for use with one or more computers to carry out the method asset out claim 4.